Neural networks are computing systems that are inspired by biological processes. In particular, they comprise a plurality of modules that are designed to operate similarly to the way biological neurons are thought to function. Neurons are often modeled as multiple-input, single-output thresholding accumulators, which “fire” if enough of the inputs are active enough. (The output of one model neuron may be connected to a number of subsequent neurons model inputs, or even to previous neuron models in a feedback loop.) Although the function of a single neuron model is quite simple, it has been observed that a large number of models operating simultaneously, which are configured or “trained” properly, can produce surprisingly good results in problems that are difficult to address with traditional data processing or programming techniques.
One common neural-network task is image recognition: a plurality of neurons are arranged in a pyramid-like hierarchy, with an array of input neurons for each pixel of an image, followed by one or more decreasing-sized layers of neurons, and where an output neuron is designated to indicate whether an input image has a characteristic of interest. Such a network can be “trained” by exposure to a set of images where the characteristic of interest is present or absent. For example, the characteristic may be whether a penguin is present in the image. Once trained, the network may be able to determine fairly accurately whether a penguin is depicted in a new image, not part of the training set.
Neural networks can also be used to generate or synthesize new information based on prior training and a random seed. For example, biophysicist Dr. Mike Tyka has experimented with training neural networks to generate images that resemble artistic portraits of human faces, although there is no actual subject involved, and any resemblance to an individual is purely coincidental.
Although neural networks are not infallible (recognizers may misidentify a target, or generative networks may construct output that is not useable for the intended purpose) they are often adequate for practical use in applications where deterministic methods are too slow, too complex or too expensive. Thus, neural networks can fill a gap between rote mechanical methods that are easy to implement on a computer, and labor-intensive methods that depend on human judgment to achieve best results.